package network

import (
	openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
)

type CloudNetworkInterface interface {
	VpcGreeter
	VSwitchGreeter
	RouteGreeter
	DNSGreeter
}

type Network struct {
	config *openapi.Config
}

func NewNetwork(config *openapi.Config) CloudNetworkInterface {
	return &Network{
		config: config,
	}
}

func (n *Network) VPC(region string) VpcInterface {
	return newVpc(n, region)
}

func (n *Network) VSwitch(region string) VSwitchInterface {
	return newVSwitch(n, region)
}

func (n *Network) Route(region string) RouteInterface {
	return newRoute(n, region)
}

func (n *Network) DNS(region string) DNSInterface {
	return newDNS(n, region)
}
